home *** CD-ROM | disk | FTP | other *** search
/ Programming Languages Suite / ProgLangD.iso / BORLAND TURBO / OCFINC.PAK / OCDATA.H < prev    next >
C/C++ Source or Header  |  1997-05-06  |  3KB  |  89 lines

  1. //----------------------------------------------------------------------------
  2. // ObjectComponents
  3. // Copyright (c) 1994, 1997 by Borland International, All Rights Reserved
  4. //
  5. // $Revision:   2.8  $
  6. //
  7. // Definition of TOcDataProvider Class
  8. //----------------------------------------------------------------------------
  9. #if !defined(OCF_OCDATA_H)
  10. #define OCF_OCDATA_H
  11.  
  12. #if !defined(OCF_OCVIEW_H)
  13. # include <ocf/ocview.h>
  14. #endif
  15.  
  16. #if defined(BI_NAMESPACE)
  17. namespace OCF {
  18. #endif
  19.  
  20. //
  21. // Callback function for user data clean up
  22. //
  23. typedef void (*TDeleteUserData)(void* userData);
  24.  
  25. //
  26. // class TOcDataProvider
  27. // ~~~~~ ~~~~~~~~~~~~~~~
  28. // Data Provider object for a container document
  29. //
  30. class _OCFCLASS TOcDataProvider : public TUnknown,
  31.                                   public IBDataProvider {  
  32.   public:
  33.     TOcDataProvider(TOcView& ocView, TRegList* regList, IUnknown* outer = 0,
  34.                     void* userData = 0, TDeleteUserData callBack = 0);
  35.  
  36.     // Object reference & lifetime managment
  37.     //
  38.   public:
  39.     ulong   _IFUNC AddRef() {return GetOuter()->AddRef();}
  40.     ulong   _IFUNC Release() {return GetOuter()->Release();}
  41.     HRESULT _IFUNC QueryInterface(const GUID far& iid, void far*far* iface)
  42.                      {return GetOuter()->QueryInterface(iid, iface);}
  43.  
  44.     // Supporting methods
  45.     //
  46.     void    Disconnect();
  47.     void    Rename();
  48.     void*   GetUserData() {return UserData;}
  49.     void    SetUserData(void* userData) {UserData = userData;}
  50.  
  51.   protected:
  52.     // IBDataNegotiator implementation
  53.     //
  54.     UINT     _IFUNC CountFormats();
  55.     HRESULT  _IFUNC GetFormat(uint index, TOcFormatInfo far* fmt);
  56.  
  57.     // IBDataProvider implementation
  58.   //
  59.     HANDLE  _IFUNC  GetFormatData(TOcFormatInfo far* fmt);
  60. //    HRESULT _IFUNC  SetFormatData(TOcFormatInfo far* fmt, HANDLE data, bool release);
  61.     HRESULT _IFUNC  Draw(HDC dc, const RECTL far*  pos, const RECTL far* clip,
  62.                          TOcAspect aspect, TOcDraw bd);
  63.     HRESULT _IFUNC  GetPartSize(TSize far* size);
  64.     HRESULT _IFUNC  Save(IStorage*, BOOL sameAsLoad, BOOL remember);
  65.  
  66.     TPoint         Origin;
  67.     TSize          Extent;
  68.  
  69.   private:
  70.    ~TOcDataProvider();
  71.  
  72.     // TUnknown overrides
  73.     //
  74.     HRESULT      QueryObject(const IID far& iid, void far* far* iface);
  75.  
  76.     TOcView&        OcView;
  77.     IUnknown*       BSite;           // site helper
  78.     IBSite*         BSiteI;          // Site interface
  79.     IBLinkable*     BLSiteI;         // for item moniker
  80.     void*           UserData;        // pointer to application specific data such as selection
  81.     TDeleteUserData CBDelete;        // Call back function for cleaning up user data
  82. };
  83.  
  84. #if defined(BI_NAMESPACE)
  85. } // namespace OCF
  86. #endif
  87.  
  88. #endif  // OCF_OCDATA_H
  89.